home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 120 / maccd 120.iso / Utilities / Mac OS X / FolderControl1.40.dmg / FolderControl 1.40 .app / Contents / Resources / Java / FolderControl.jar / IconHeightComputer.class (.txt) < prev    next >
Encoding:
Java Class File  |  2003-12-22  |  3.3 KB  |  121 lines

  1. import com.apple.cocoa.foundation.NSData;
  2. import com.apple.cocoa.foundation.NSDictionary;
  3. import com.apple.cocoa.foundation.NSPropertyListSerialization;
  4. import java.io.File;
  5. import java.math.BigDecimal;
  6.  
  7. public class IconHeightComputer {
  8.    private static final boolean debug = false;
  9.    private static final int LINE_HIGH_BASE_1 = 35;
  10.    private static final int LINE_HIGH_BASE_2 = 47;
  11.    private static final int LINE_HIGH_BASE_3 = 59;
  12.    private static final int SMALLEST_HEIGHT = 120;
  13.    // $FF: synthetic field
  14.    static Class class$java$lang$Number;
  15.  
  16.    public static void main(String[] var0) {
  17.       System.out.println(roundDownToNearestIcon(var0[0]));
  18.    }
  19.  
  20.    public static String roundDownToNearestIcon(String var0) {
  21.       int var1 = var0.indexOf(",");
  22.       int var2 = var0.indexOf(",", var1 + 1);
  23.       var0.indexOf(",", var2 + 1);
  24.       int var4 = Integer.parseInt(var0.substring(0, var1));
  25.       int var5 = Integer.parseInt(var0.substring(var1 + 1, var2));
  26.       int var6 = Integer.parseInt(var0.substring(var2 + 1));
  27.       return String.valueOf(roundDownToNearestIcon(var4, var5, var6));
  28.    }
  29.  
  30.    public static String compute(String var0) {
  31.       int var1 = var0.indexOf(",");
  32.       int var2 = var0.indexOf(",", var1 + 1);
  33.       var0.indexOf(",", var2 + 1);
  34.       int var4 = Integer.parseInt(var0.substring(0, var1));
  35.       int var5 = Integer.parseInt(var0.substring(var1 + 1, var2));
  36.       int var6 = Integer.parseInt(var0.substring(var2 + 1));
  37.       return String.valueOf(compute(var4, var5, var6));
  38.    }
  39.  
  40.    public static int roundDownToNearestIcon(int var0, int var1, int var2) {
  41.       int var4 = getMaxNumberOfFinderLabelLines();
  42.       BigDecimal var5 = BigDecimal.valueOf((long)(var0 - 45 + 1));
  43.       var5 = var5.divide(BigDecimal.valueOf((long)(getBase(var4) + textSizeInc(var1, var4) + var2 - 16)), 1);
  44.       int var3 = var5.intValue();
  45.       return compute(var1, var3, var2);
  46.    }
  47.  
  48.    public static int compute(int var0, int var1, int var2) {
  49.       return compute(getMaxNumberOfFinderLabelLines(), var0, var1, var2);
  50.    }
  51.  
  52.    private static int compute(int var0, int var1, int var2, int var3) {
  53.       int var4 = 120;
  54.       var4 = var2 * (getBase(var0) + textSizeInc(var1, var0) + var3 - 16) + 45 - 1;
  55.       return var4 < 120 ? 120 : var4 - 3;
  56.    }
  57.  
  58.    private static int getBase(int var0) {
  59.       if (var0 == 1) {
  60.          return 35;
  61.       } else if (var0 == 2) {
  62.          return 47;
  63.       } else {
  64.          return var0 == 3 ? 59 : 0;
  65.       }
  66.    }
  67.  
  68.    private static int textSizeInc(int var0, int var1) {
  69.       switch (var0) {
  70.          case 10:
  71.             return 0;
  72.          case 11:
  73.             return var1;
  74.          case 12:
  75.             return 3 * var1;
  76.          case 13:
  77.             return 4 * var1;
  78.          case 14:
  79.             return 5 * var1;
  80.          case 15:
  81.          case 16:
  82.             return 6 * var1;
  83.          default:
  84.             return 0;
  85.       }
  86.    }
  87.  
  88.    private static int getMaxNumberOfFinderLabelLines() {
  89.       String var0 = System.getProperty("user.name");
  90.       File var1 = new File("/Users/" + var0 + "/Library/Preferences/com.apple.finder.plist");
  91.       NSData var2 = new NSData(var1);
  92.       NSDictionary var3 = (NSDictionary)NSPropertyListSerialization.propertyListFromXMLData(var2);
  93.       Object var4 = var3.objectForKey("MaximumLabelLines");
  94.       Object var5 = null;
  95.       if (var4 == null) {
  96.          return 2;
  97.       } else {
  98.          if (var4.getClass() == (class$java$lang$Number == null ? (class$java$lang$Number = class$("java.lang.Number")) : class$java$lang$Number)) {
  99.             var5 = (Number)var4;
  100.          } else {
  101.             try {
  102.                var5 = new Integer(var4.toString());
  103.             } catch (NumberFormatException var7) {
  104.                var5 = null;
  105.             }
  106.          }
  107.  
  108.          return var5 == null ? 2 : ((Number)var5).intValue();
  109.       }
  110.    }
  111.  
  112.    // $FF: synthetic method
  113.    static Class class$(String var0) {
  114.       try {
  115.          return Class.forName(var0);
  116.       } catch (ClassNotFoundException var2) {
  117.          throw new NoClassDefFoundError(var2.getMessage());
  118.       }
  119.    }
  120. }
  121.